- This tablet gets more usage than my iPad Pro, and it costs a fraction of the price
- The 20+ best Black Friday Target deals 2024
- Best Black Friday TV deals 2024: 75+ expert-selected deals on QLED, OLED, & more
- Grab Microsoft Visual Studio Pro for 93% off right now
- Starbucks, Supermarkets Targeted in Ransomware Attack
How to loop forever in bash
while :
do
echo Keep running
echo "Press CTRL+C to exit"
sleep 3
done
You can do the same thing in a single line by separating the lines shown above with semicolons as shown in the example below.
while true; do echo Keep running; echo 'Press CTRL+C'; sleep 3; done
The command below would work the same. I prefer while true because it seems obvious, but any of the examples shown will work as does this one:
while [ 1 ]
do
echo Keep running
echo "Press CTRL+C to exit"
sleep 3
done
Using for
The for command also provides an easy way to loop forever. While not quite as obvious as the while true option, the syntax is reasonably straightforward. You can just replace the parameters in a normal for loop (the start, condition and increment values) that would generally look something like this:
$ for (int i = 0; i < 5; i++)
Instead, use the for command with no such values as in the example below.
$ for (( ; ; ))
> do
> echo Keep your spirits up
> echo “Press CTRL+C to exit”
> sleep 3
> done
Keep your spirits up
“Press CTRL+C to exit“
Keep your spirits up
“Press CTRL+C to exit“
Keep your spirits up
“Press CTRL+C to exit“
And, obviously, press CTRL-C when you want to exit the loop.
Why loop forever?
Of course, you’re not ever going to want to loop forever, but having loops run until you stop them can often be very useful. The script below runs until 5:00 p.m. It uses the date command with the +%H option to check the time, then reminds you that it’s time to go home and exits. The sleep 60 command was included to limit the time checking to once a minute. Otherwise, this script could gobble up a lot of CPU time.